---@class sjson
---https://nodemcu.readthedocs.io/en/release/modules/sjson/
sjson = {}

---这将创建一个编码器对象，该对象可以将Lua对象转换为JSON编码的字符串。
---https://nodemcu.readthedocs.io/en/release/modules/sjson/#encoder
---@param table table @
---@param ops {depth:number,null:boolean}
---@return sjson.encoder
function sjson.encoder()
end

---这将获得JSON编码的数据块。
---https://nodemcu.readthedocs.io/en/release/modules/sjson/#encoder
---@param size number @默认1024
---@return string|nil
function sjson.encoder:read(size)
end

---将Lua表编码为JSON字符串。这是一种方便的方法，用于向后兼容cjson。
---https://nodemcu.readthedocs.io/en/release/modules/sjson/#encode
---@param table table @
---@param ops {depth:number,null:boolean}
---@return number
function sjson.encode(table, ops)
end

---将Lua表编码为JSON字符串。这是一种方便的方法，用于向后兼容cjson。
---https://nodemcu.readthedocs.io/en/release/modules/sjson/#decoder
---@param ops {depth:number,null:boolean,metatable:boolean}
---@return table
function sjson.decoder(ops)
end

---这提供了更多要解析到Lua对象中的数据。
---https://nodemcu.readthedocs.io/en/release/modules/sjson/#decoder
---@param str string
---@return table|nil
function sjson.decoder:write(str)
end

---这会获取已解码的Lua对象，或者在解码尚未完成时引发错误。这个函数可以被多次调用，并且每次都返回相同的对象。
---https://nodemcu.readthedocs.io/en/release/modules/sjson/#decoder
---@param ops {depth:number,null:boolean,metatable:boolean}
---@return table
function sjson.decoder:result(ops)
end

---解码一个JSON字符串到一个Lua表。这是一种方便的方法，用于向后兼容cjson。
---https://nodemcu.readthedocs.io/en/release/modules/sjson/#decode
---@param str string
---@param ops {depth:number,null:boolean,metatable:boolean}
---@return table
function sjson.decode(str, ops)
end
